package com.ruoyi.process.pipemaintainence2.service;

import com.ruoyi.process.pipemaintainence2.domain.TDrainagePipeMaintainence;
import java.util.List;
import java.util.Map;

/**
 * 排水管养Service接口
 *
 * @author Xianlu Tech
 * @date 2019-12-05
 */
public interface ITDrainagePipeMaintainenceService {
    /**
     * 查询排水管养
     *
     * @param id 排水管养ID
     * @return 排水管养
     */
    public TDrainagePipeMaintainence selectTDrainagePipeMaintainenceById(String id);

    /**
     * 查询排水管养列表
     *
     * @param tDrainagePipeMaintainence 排水管养
     * @return 排水管养集合
     */
    public List<TDrainagePipeMaintainence> selectTDrainagePipeMaintainenceList(TDrainagePipeMaintainence tDrainagePipeMaintainence);

    /**
     * 新增排水管养
     *
     * @param tDrainagePipeMaintainence 排水管养
     * @return 结果
     */
    public int insertTDrainagePipeMaintainence(TDrainagePipeMaintainence tDrainagePipeMaintainence);

    /**
     * 修改排水管养
     *
     * @param tDrainagePipeMaintainence 排水管养
     * @return 结果
     */
    public int updateTDrainagePipeMaintainence(TDrainagePipeMaintainence tDrainagePipeMaintainence);

    /**
     * 批量删除排水管养
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTDrainagePipeMaintainenceByIds(String ids);

    /**
     * 删除排水管养信息
     *
     * @param id 排水管养ID
     * @return 结果
     */
    public int deleteTDrainagePipeMaintainenceById(String id);


    List<Map<String, Object>> selectTDrainagePipeMaintainenceList2(TDrainagePipeMaintainence tDrainagePipeMaintainence);

    /**
     * 改造以map的形式接收参数
     * @param map
     * @return
     */
    List<Map<String, Object>> selectTDrainagePipeMaintainenceList3(Map<String, Object> map);


    /**
     * 待办任务列表（区分待办和签收）
     * @return
     */
    List<Map<String, Object>> todoTaskList(Map<String, Object> paramMap);

    /**
     * 已办任务列表
     * @return
     */
    List<Map<String, Object>> doneTask();

    /**
     * 我发起的流程
     * @return
     */
    List<Map<String, Object>> startByOwn();

    /**
     * 启动流程
     * @param tDrainagePipeMaintainence
     * @param applyUserId
     */
    void submitApply(TDrainagePipeMaintainence tDrainagePipeMaintainence, String applyUserId);


    /**
     * 完成任务
     * @param userId
     * @param taskId
     * @param opinion
     * @param comment
     */
    void complete(String userId, String taskId, Boolean opinion, String comment);


}
